package com.obelisco.vista.seguridad;

import java.util.HashMap;
import java.util.Map;
import java.util.Iterator;
import java.util.ResourceBundle;
import java.util.Vector;

import nextapp.echo2.app.Alignment;
import nextapp.echo2.app.Column;
import nextapp.echo2.app.Row;
import nextapp.echo2.app.Extent;
import nextapp.echo2.app.Insets;

import com.obelisco.modelo.data.CarpetaTransaccion;
import com.obelisco.modelo.data.Transaccion;
import com.obelisco.vista.seguridad.BotonMenuEmergente;
import nextapp.echo2.app.Button;
import nextapp.echo2.app.event.ActionEvent;
import nextapp.echo2.app.event.ActionListener;

public class BarraMenu extends Row {

	private ResourceBundle resourceBundle;

	private Button btnSalir;

	private Vector<BarraMenuListener> listeners = new Vector<BarraMenuListener>();

	private Map<String, ContenedorEmergente> menus = new HashMap<String, ContenedorEmergente>();

	/**
	 * Creates a new <code>BarraMenu</code>.
	 */
	public BarraMenu() {
		super();

		// Add design-time configured components.
		initComponents();
	}

	private void accionSalir(ActionEvent e) {
		// TODO Implement.
		distribuirEventoSalida();
	}

	/**
	 * Configures initial state of component. WARNING: AUTO-GENERATED METHOD.
	 * Contents will be overwritten.
	 */
	private void initComponents() {
		this.setCellSpacing(new Extent(5, Extent.PX));
		btnSalir = new Button();
		btnSalir.setStyleName("Obelisco.Boton.Salir");
		
		btnSalir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				accionSalir(e);
			}
		});
		add(btnSalir);
	}

	public void addBarraMenuListener(BarraMenuListener listener) {
		listeners.add(listener);
	}

	public void removeBarraMenuListener(BarraMenuListener listener) {
		listeners.remove(listener);
	}

	private void distribuirEventoSalida() {

		for (BarraMenuListener listener : listeners) {
			listener.onSalir();
		}

	}

	public Map<String, ContenedorEmergente> getMenus() {
		return menus;
	}

	public void setMenus(Map<String, ContenedorEmergente> menus) {
		this.menus = menus;

		this.removeAll();
		for (String titulo : menus.keySet()) {

			ContenedorEmergente contenedor = menus.get(titulo);
			BotonMenuEmergente botonEmergente = new BotonMenuEmergente();
			botonEmergente.setEmergente(contenedor);
			add(botonEmergente);
			
		}

		btnSalir = new Button();
		btnSalir.setStyleName("Obelisco.Boton.Salir");
		
		btnSalir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				accionSalir(e);
			}
		});
		add(btnSalir);

	}

}
